#include <stdio.h>
#include <stdlib.h>

int tab[3][3] = {{'.','.','.'},{'.','.','.'},{'.','.','.'}};

int testerCoup(int x)
{
    return tab[0][x-1]=='.'&&x<10&&x>0;
}
void jouerCoup(int x,char c)
{
    tab[0][x-1] = c;
}
int nul()
{
    int i;
    for(i=0;i<9;i++)
        if(tab[0][i]=='.')return 0;
    return 1;
}
int testerGagnant()
{
    int i;
    if((tab[0][0] == tab[1][1]) && (tab[2][2] == tab[1][1]) && (tab[0][0] != '.') && (tab[1][1] != '.') && (tab[2][2] != '.'))
        return printf("Joueur %d a gagner\n", 1+(tab[0][0]=='0'));

    if((tab[0][2] == tab[1][1]) && (tab[2][0] == tab[1][1]) && (tab[0][2] != '.') && (tab[1][1] != '.') && (tab[2][0] != '.'))
        return printf("Joueur %d a gagner\n", 1+(tab[0][2]=='0'));

    for(i=0;i<3;i++)
        if((tab[i][0] == tab[i][1]) && (tab[i][2] == tab[i][1]) && (tab[i][0] != '.') && (tab[i][1] != '.') && (tab[i][2] != '.'))
            return printf("Joueur %d a gagner\n", 1+(tab[i][0]=='0'));
    for(i=0;i<3;i++)
        if((tab[0][i] == tab[1][i]) && (tab[2][i] == tab[1][i]) && (tab[0][i] != '.') && (tab[1][i] != '.') && (tab[2][i] != '.'))
            return printf("Joueur %d a gagner\n", 1+(tab[i][0]=='0'));
    return 0;

}
void show()
{
int x,y;
for(y=0;y<3;y++,printf("\n"))
    for(x=0;x<3;x++)
        printf("%c",tab[y][x]);
}
int main(void)
{
    int c;
    do
    {
        printf("Joueur 1 :");
        do{scanf("%d",&c);
        }while(!testerCoup(c));
            jouerCoup(c,'X');
        show();
        if(testerGagnant() || nul())break;
        printf("Joueur 2 :");
        do{scanf("%d",&c);}while(!testerCoup(c) || c == 11);

        jouerCoup(c,'0');
        show();
    }while(!testerGagnant() || nul());
    if(nul())
        printf("Match nul\n");
    return 0;
}
